Forensic marking using a common customization function

ABSTRACT

Methods, systems, and apparatus are disclosed which enable flexible insertion of forensic watermarks into a digital content signal using a common customization function. The common customization function flexibly employs a range of different marking techniques that are applicable to a wide range of forensic marking schemes. These customization functions are also applicable to pre-processing and post-processing operations that may be necessary for enhancing the security and transparency of the embedded marks, as well as improving the computational efficiency of the marking process. The common customization function supports a well-defined set of operations specific to the task of forensic mark customization that can be carried out with a modest and preferably bounded effort on a wide range of devices. This is accomplished through the use of a generic transformation technique for use as a “customization” step for producing versions of content forensically marked with any of a multiplicity of mark messages.

This application claims the benefit of U.S. provisional patent application No. 60/696,146 filed on Jul. 1, 2005, which is incorporated herein and made a part hereof by reference for all purposes as if set forth in its entirety.

BACKGROUND OF THE INVENTION

The present invention relates generally to systems, methods and apparatus for providing forensic markings for media content. Forensic marking is the practice of creating individual copies of information content that are substantially identical for most practical purposes, but that can in fact be distinguished from one another in order to ascertain information about their chain-of-custody subsequent to their distribution. For example, intentionally introduced errors in logarithmic tables were used in previous centuries to prove that certain publications of those tables had been copied from a particular source without authorization from the table's creator. In the modern era, forensic marking is widely viewed as an important technique for protection of valuable media information content such as movies, music, programming, documents, and other digital information content such as software and data files and has convincingly demonstrated its commercial efficacy. Forensic marking is typically intended to assist in locating a point in the chain-of-custody where an unauthorized use of the content occurred.

A wide range of schemes have been proposed for introducing identifiable marks into content and for subsequently identifying their presence. The broad class of techniques commonly known as “watermarking”, wherein auxiliary data is imperceptibly embedded into the content, are most commonly associated with this task, however a range of different approaches are possible. An exemplary methodology that does not incorporate watermarking is to simultaneously capture one or more scenes in a film production by employing two cameras at different locations and using these similar recordings as alternately selectable versions of content for the purpose of distinguishing copies. Another approach that can be employed with video content is to superimpose a figure or graphic onto the image that is either brief and unnoticeable (such as the “cap coding” dots that are reported to be employed in commercial film production) or that is innocuous (such as superimposing an additional face in a crowd or changing the color of a chair).

Various forensic marking schemes offering differing performance and capabilities with respect to: the types of content to which they are applicable (e.g., video, audio, textual, images, executable program instructions, data, etc.); the degree of transparency or interference of the marking with respect to primary intended purpose of the content; the payload capacity of the marking (e.g., number of uniquely marked copies that can be generated and the amount of the marked content necessary to identify the mark); the effort required to apply or identify the mark (e.g., the computational complexity of insertion or detection of the forensic mark); the recoverability of the mark following incidental use and modification of the content (“robustness”); or the resistance of the mark to attempts to interfere with its use (“security”) through forgery, modification, eavesdropping, and erasure.

In many practical circumstances, the marking must be performed under tight constraints. For example, when a high volume of individually marked copies of content must be created, it is desirable that each should be made as effortlessly as possible to minimize time, expense or resource usage. Additionally, when a copy of content must be marked at the time of its delivery or use, it is typically important that the marking occur with minimal effort so as not to delay the delivery or interfere with other simultaneous actions associated with the event. For example, on a computer server system that provides copies of content in response to requests received over a network, the effort required to supply a distinctly marked copy in response to individual requests may substantially increase the amount of processing and/or storage required to respond to a given number of requests, versus simply providing the same copy of the content in response to each, as is more typically done. Similarly, if the marking must be applied using digital electronics embedded within a consumer device such as a personal computer, portable music player, or multimedia-enabled cellular telephone, it is important that the process of customizing individual copies does not interfere with or limit other device functions, including in the areas of computing processor utilization, power consumption, or user-interface response time.

A valuable approach to minimizing the effort in forensic marking is to divide the forensic marking activity into two steps. The first step performs a “pre-processing” of the content that only needs to be performed once and may require substantial effort in order to produce one or more versions of the content and possibly also to analyze data that can be used in a subsequent “customization” step of reduced effort that is repeated with minor variations to produce the forensically marked copies of the content. While the customization step of a two-step forensic marking scheme is not inherently limited to any particular operation, some examples of common functions that may be typically included in such an arrangement include splicing of regions of content together, replacement of certain regions of content with regions taken from other content, mathematical addition of regions of content, mathematical additional of a region taken from content with the mathematical multiplication of two other content regions, and the like. This approach is generally employed in an arrangement where the pre-processing and customization steps are performed on separate physical devices and at different stages of the chain of production, distribution, and consumption of content.

Another critical consideration in forensic marking is the vulnerability of marking techniques to subversion through various avenues of attack by individuals seeking to thwart identification of the forensic mark. Such attacks may by implemented by a variety of means, but typically involve transforming the content such that the mark is altered or obscured.

It is generally advantageous to an attacker making an attack on a marking technique if they have knowledge of the details of the marking technique employed, and for this reason it is desirable for the efficacy of the system that as much information about the marking techniques employed for any particular content instance be unavailable to them. Generally, in order to avoid exposure of marking methods, tamper-resistant implementation techniques are employed in order to protect devices that perform marking and information stored internally from reverse engineering. However, a particular advantage of the two-step forensic marking approach for environments where marking is performed in a device that may be attacked is that it is possible for many of the sensitive technologies to be employed during the pre-processing step, which can be retained under the control of the content distributor, and the information regarding the marking scheme that needs to be present in the device that performs customization can be much more limited. Furthermore, cryptographic techniques may be used to enhance the security of the forensic marking system. For example, the information that is delivered to a particular customization device, including all alternate versions of the original content signal plus functions and parameters that are necessary to effect the marking, may be encrypted and the particular customization device may be required to request the delivery of proper decryption keys upon the exchange of proper identification and authentication information. Further, through encryption of alternate versions of the content with different keys and by providing the customization function with only the decryption keys associated with the versions of content that are used to form mark messages that the device is authorized to render, the security impact of a compromised customization device may be substantially diminished. In such a scenario, the attacker may be unable to access any content elements other than those that are specifically accessible to the compromised device.

Nevertheless, a number of factors may still frustrate efforts to keep secret information out of an attacker's hands. Attackers may be able to learn about particular marking technologies from any of many different sources, including leaks of confidential information, from information included in patent filings, from reverse engineering of devices that perform marking or mark detection functions, or from analysis of marked content (including, in particular, comparative analysis or combined processing of differently marked versions of the same content, the so called “collusion” attacks).

If only a single marking technique is employed, then the emergence of a successful attack may be immediate and catastrophic. Thus, it may be advantageous to employ a multiplicity of marking techniques across a range of content and devices at any given point in time. Further, if the marking technique employed is fixed, its resistance to attack will only diminish over time as information on its function is slowly gleaned by attackers. Thus it may be advantageous to be able to change marking techniques employed on a time schedule that is responsive to progress made by attackers over time.

There are additional practical considerations related to the use of forensic marking schemes. It may be desirable for the manufacturer of some product that processes content to facilitate the forensic marking of the content using a variety of different schemes. For example, the various owners or distributors of different content processed by the device might want different schemes to be used in connection with particular content which they provide for use on the device, and those wishes might change over time due to purely commercial considerations. Additionally, different types of content (such as 3 minute popular music songs versus 8 hour audiobooks) might introduce entirely different marking requirements because of their duration, bandwidth, attack threat model, commercial value, sales volume, or some other consideration. For the manufacturer of such a device, it may be impractical, burdensome, or even impossible to include sufficient capability to support all desired forensic marking schemes and a capability to update the devices functions over time, even if the marking schemes permit separate pre-processing and customization such that the device need only perform the customization steps of the various forensic marking schemes.

Clearly, if the customization step is carried out on a general-purpose programmable device, such a device may be reprogrammed at various times to apply different forensic marking techniques. Such reprogramming might be performed or even provided in conjunction with each particular piece of content, if programming instructions are provided along with the content. However, if the marking must be performed on a variety of different types of programmable devices, it may be impractical or burdensome to provide instructions for each different programmable device.

It has been proposed that a desirable method of flexibly applying forensic marking is through inclusion of a common programmable capability or so-called “virtual machine” that can execute arbitrary data processing functions expressed in program code delivered with content, including those that customize pre-processed, encrypted content in order to achieve forensic marking. This approach places a substantial burden of complexity on the device that performs customization, which must implement the virtual machine and be capable of executing the arbitrary program instructions. Additionally, it places a burden on the content producer and forensic scheme technology developer for devising program instructions and ensuring their correctness, tasks that are generally difficult, expensive, and error-prone.

Another proposed approach to the flexible application of forensic marking in a diverse range of devices is the creation of a standardized, common function that can perform a complete forensic marking operation on content in response to marking instructions provided with the content. This approach employs a set of common, fixed data processing primitives with adjustable parameters that are believed to support a range of commercially useful forensic watermark embedding schemes. This approach provides reduced complexity with respect to the development and testing of marking instruction streams in comparison with an approach that employs a generic “virtual machine,” but has several other significant drawbacks. First, the range of marking techniques that such a device can support will be inherently limited by the scope of the available primitives. As pointed out herein, a very wide range of methods have been proposed for watermarking, not to mention forensic marking generally, and diversity in the area of marking techniques is of benefit to mark security and commercial acceptability. The limitation of the fundamental method of forensic marking to a finite set that can be incorporated in a standardized specification substantially limits the efficacy and practicality of the system.

Also, the amount of processing required for many practical forensic watermarking techniques is substantial, and inclusion of the complete forensic mark application within the device responsible for content customization may have a significant negative impact on the cost and/or performance of such devices. For example, the embedding function in many practical watermarking schemes rely on perceptual modeling of the content being marked to constrain the amplitude of modifications to an amount that results in an acceptable level of perceptual distortion. Such modeling may be difficult to express in a generic messaging language, may require substantial processing and memory resources, and may introduce significant processing latency. This impact may make such an approach unsuitable for large classes of devices, such as portable media players, cellular phones, optical media players, handheld recording devices, and the like.

It would be advantageous to provide flexible forensic watermarking methods, systems and apparatus which are designed to overcome various deficiencies of the prior art systems. More specifically, it would be advantageous to be able to flexibly employ a range of different marking techniques in different instances that all rely on a common customization function that is applicable to a wide range of forensic marking schemes (and consequently, a wide range of pre-processing methods), but that support a well-defined set of functions specific to the task of forensic mark customization that can be carried out with a modest and preferably bounded effort on a wide range of devices. Because a very wide range of techniques are used for marking content, there has previously been no practical way to address these challenges. The present invention achieves such desirable features through the use of a generic transformation technique for use as a “customization” step for producing versions of content forensically marked with any of a multiplicity of mark messages, wherein the customization function is responsive to instructions provided along with pre-processed content that enable its compatibility with a range of different forensic marking schemes.

The methods, systems and apparatus of the present invention provide the foregoing and other advantages.

SUMMARY OF THE INVENTION

The present invention provides methods, systems, and apparatus which enable flexible insertion of forensic watermarks into a digital content signal by using a common customization function.

In an example embodiment of the present invention, a method for producing a distinctly marked content is provided. A plurality of tributaries and customization information are received (e.g., at a client device, a user location, a discrete processing element at the same location, or the like). The tributaries and customization information are processed using a common customization function adapted to accept a mark message in order to produce a distinctly marked content.

The plurality of tributaries and the customization information may be produced by pre-processing original content. Alternatively, the plurality of tributaries and the customization information may be produced by pre-processing the original content with at least one alternate content element. The tributaries may be derived from the alternate content elements.

The pre-processing function may comprise embedding at least a logical value in a portion said original content. The tributaries may be synthesized during the pre-processing.

The tributaries may comprise instructions for generating at least one alternate version of the original content or an alternate content element.

The method may further comprise analyzing the tributaries and customization information to obtain validation information. The validation information may comprise resource allocation profiles. Further, the validation information may represent compatibility profiles.

The processing of the tributaries and customization information may comprise selecting a subset of the tributaries, generating rendering information in accordance with the customization information and the mark message, and rendering the selected tributaries in accordance with the rendering information to form the distinctly marked content.

The selecting may be conducted in accordance with the customization information and the mark message. The selecting may also be conducted in accordance with a set of nexus resolution instructions.

The rendering may comprise assembling the selected tributaries in accordance with the rendering information. Assembling the tributaries may comprises at least one of adding, multiplying, splicing or blending of the selected tributaries. The rendering may be conducted in accordance with a set of assembly instructions. These assembly instructions may correspond to at least one of a PDF, XML, MXF, AAF, ASF, BWF, and Mobile XMF encoding formats. The rendering may comprises post-processing operations to enhance the security of the distinctly marked content. The rendering may further comprises post-processing operations to enhance the transparency of the embedded marks within the distinctly marked content.

The mark message may be encoded in accordance with at least one of an error correction coding, a channel coding, a data security protocol, or the like. The encoding of the mark message may be conducted using a look-up table.

In a further example embodiment of the present invention, an apparatus for producing a distinctly marked content is provided. The apparatus comprises means for receiving a plurality of tributaries and customization information produced by a pre-processing function and processing means for processing the tributaries and customization information using a common customization function adapted to accept a mark message in order to produce a distinctly marked content.

In another example embodiment of the present invention, a method for enabling the production of a distinctly marked content is provided. In such an embodiment, an original content is received (e.g., by transmission over a wired or wireless network, from a storage element, from another device or functional element, or the like). This original content, once received, is then pre-processed to produce a plurality of tributaries and customization information. The tributaries and customization information enable the production of a distinctly marked content (e.g., using a common customization function as discussed in the above-described embodiments).

The plurality of tributaries and the customization information may be produced by pre-processing the original content with at least one alternate content element. The tributaries may be derived from the alternate content elements.

Methods, apparatus, and systems corresponding to the foregoing example embodiments, and to combinations of the foregoing example embodiments, are encompassed by the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will hereinafter be described in conjunction with the appended drawing figures, wherein like reference numerals denote like elements, and:

FIG. 1 illustrates a general block diagram overview of the forensic marking system in accordance with an example embodiment of the invention;

FIG. 2 shows a block diagram describing elements of the common customization function of FIG. 1 in accordance with an example embodiment of the invention;

FIG. 3 illustrates various elements of the composition function of FIG. 2 in accordance with an example embodiment of the invention; and

FIG. 4 illustrates various elements of the rendering function of FIG. 2 in accordance with an example embodiment of the invention.

DETAILED DESCRIPTION

The ensuing detailed description provides exemplary embodiments only, and is not intended to limit the scope, applicability, or configuration of the invention. Rather, the ensuing detailed description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing an embodiment of the invention. It should be understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the invention as set forth in the appended claims.

FIG. 1 illustrates a high-level block diagram of the forensic marking technique of the present invention. The original content 100 is pre-processed by a pre-processing function 104, optionally in combination with alternate content elements 102, to obtain a multiplicity of tributaries 106 and associated customization information 108. The tributaries 106 and customization information 108 are utilized by a common customization function 114 to produce distinctly marked content 118 that carries any of a multiplicity of identifiable mark messages 116. The original content 100 and alternate content elements 102 may be any type of data, signal, or information; however typical embodiments will for practical reasons be limited in applicability to a limited set of data or information types. The tributaries 106 and customization information 108 are represented in a well-defined format that permits independent validation of its compliance with various protocol requirements by a validation function 110, if desired, prior to its application to the common customization function 114. The relationship between the pre-processing function 104, validation function 110 (when present), and common customization function 114 is illustrated in FIG. 1.

It should be appreciated that while FIG. 1 and the other figures may accurately represent the physical relationships between various components for an example apparatus of the present invention, it is understood that these figures may also illustrate conceptual or logical relationships between various elements of the invention. For example, boxes may correspond to functions, which may be either discretely implemented or integrated with other functions, and arrows may correspond to the flow of information, either by value or by reference. Other relationships, functions, and data paths may also be present in the device which are not shown in the figures including, for example, connectivity to external information sources for control or recording of device activities and access to content-specific information such as encryption and decryption keys.

Pre-Processing

The pre-processing function 104 performs operations on the original content and, optionally, alternate content elements 102, to obtain tributaries 106 and customization information 108. The pre-processing function 104 may include all or a portion of any of a wide variety of forensic marking techniques, but its essential characteristic is that its output should be designed such that the processing of its output by a pre-defined common customization function 114 will result in the production of content that has been forensically marked with any of a multiplicity of mark messages 116.

Original content 100 is the content that would serve as the basis for all copies being produced, but for the use of a forensic marking scheme. Alternate content elements 102 are versions of all or a portion of the original content 100 that are distinguishable from the original content 100, but may be employed to modify or replace all or a portion of the original content 100 for purposes of forensic marking. The term “tributary” is used in this context to mean data that can be combined in various ways to produce distinctly marked versions of the original content 100 using methods provided by the common customization function 114. Tributaries 106 may be derived from the original content 100 or alternate content elements 102, synthesized by the pre-processing function 104, they may be an encrypted or encoded representation of content, or may comprise a method or instructions for generating an alternate version of the original content or alternate content elements. In addition, the tributaries may be produced from any combination of the aforementioned methods. Additionally, tributaries 106 may be distinguished from one another either physically (for example, as separate data structures in a storage medium) or logically (for example, as regions of a continuous data structure that may be distinguished with the use of ancillary data such as markers, pointers, formulae or other explicit and implicit means).

The customization information 108 represents instructions to the common customization function 114 as to how the tributaries 106 should be combined for various mark data values that comprise the mark message 116. One of the benefits of the present invention is that the pre-processing function 104 is not in any way fixed and could implement a multitude of marking schemes in current existence or to be created in the future. The only limitation is that the marking schemes associated with the pre-processing function 104 must be compatible with a customization technique within the capabilities of the common customization function 114. Thus, the scope of the present invention with respect to operations performed by the pre-processing function 104 is considered to encompass any operation for which there exists a complementary processing capability in the common customization function 114, as described herein (e.g., the selection and application of appropriate compression of tributaries 106 for decompression by the common customization function 114, etc.).

Customization

The marking techniques in accordance with the present invention involve the use of a common customization function 114 whose processing behavior in a given instance is controlled by specified customization information 108. The range of valid customization information 108 and the processing behavior of the common customization function 114 in response to the customization information 108 is primarily fixed and well-defined. The capability of using a range of different customization information 108 enables a common customization method to be employed with a variety of different forensic marking schemes. The limited set of functions performed by the common customization function 114 permits its operation to be reasonably bounded and efficient. This configuration permits the common customization function 114 to be implemented in a fixed device and correctly perform the customization step on appropriately pre-processed information for a range of different forensic marking schemes.

An exemplary block diagram of the common customization function 114 in accordance with the present invention is described in FIG. 2. The common customization function 114 performs the acts of ‘Composition’ 120, which is the process of determining the manner in which available tributaries 106 are combined, and ‘Rendering’ 126, which is the process wherein the formation occurs to produce a distinctly marked content 118. While it is not necessary for these two steps to be either physically or logically distinct, they are considered separately herein in order to facilitate understanding and for ease of explanation.

Composition

The primary functions of composition function 120 is to provide a set of selected tributaries 122, in accordance with the customization information 108, to be used for producing a particular instance of distinctly marked content 118, and to determine the rendering information 124 necessary to guide its production. The composition function 120 may also include the act of mark encoding, which maps the mark message 116 into an alternate sequence of symbols (the “mark sequence”) that represent the mark message 116 as it is embodied within the distinctly marked content 118. An exemplary diagram of the relationship between the elements of the composition function is provided in FIG. 3.

Nexus Resolution

As shown in FIG. 3, the essential operation involved in composition 120 is the selection process, which is referred to herein as nexus resolution 132. The term “nexus” is used in this context to mean the information associated with all of the potential selections among the various alternative versions of content that may be rendered to embody a symbol in a mark sequence 136. An exemplary nexus may comprise an association between each mark sequence 136 symbol value and instructions for rendering specific tributaries whenever those symbol values exist in the mark sequence 136. Nexus resolution 132, then, is the process whereby a particular nexus (or, more generally, a multiplicity of nexuses associated with elements of a mark sequence 136, which is referred to herein as a nexus sequence 128) is evaluated to provide the selected tributaries 122 and rendering information 124 necessary to forensically mark the content with the elements of a specific mark sequence 136. As shown in FIG. 4, the rendering information 124, for example, may comprise the information necessary to assemble the selected tributaries 122 (i.e., the assembly information 138), the information necessary for post processing the assembled content 142 (i.e., the post-processing information 140), and the like. The nexus sequence 128, which may be part of the customization information 108 produced by the pre-processing function 104, may be expressed explicitly, such as in an enumerated list within a data structure (i.e., a ‘nexus list’), or implicitly, for example by specifying a pattern of nexuses according to an algorithmic or formulaic expression. Note that for practical purposes, it may be desirable to permit the specification of nexuses, which correspond to a tributary that is selected for rendering, independent of any mark sequence value and therefore common among all versions of the content (i.e. a “unary nexus”).

Mark Encoding

Mark encoding 134 performs a mapping between a mark message 116, which is the information carried by the mark that is used to distinguish the marked copy of the content from other copies of distinctly marked content, and the mark sequence 136, which is the sequence of symbols that is actually incorporated into the content. The mark encoding function 134 may provide capabilities that support any of the myriad channel coding techniques known in the art of communication and watermark technology. By way of example and not by limitation, these include the incorporation of error correction codes and synchronization symbols, interleaving and encryption of the mark message 116, as well as mapping the mark message 116 into pre-defined mark sequences using look-up tables or mapping functions.

Because it is desirable that a common customization function 114 provide compatibility with a range of forensic marking schemes, it may be useful for the mark encoding function 134 to provide a range of common channel coding techniques that may be employed in any instance according to a particular mark encoding protocol, which may be specified via customization information 108. Additionally, it may be useful for the mark encoding function 134 to provide additional data communications message formation functions, such as encryption, hashing, or digital signature formation, as directed by mark encoding protocol 130. The mark encoding protocols 130 may be communicated to the mark encoding function 134 as part of the customization information 108 produced by the pre-processing function 104. In a simple exemplary embodiment, the mark encoding protocol 130 may be implemented as a look-up table that maps the incoming mark message 116 symbols into pre-defined mark sequences 136 in accordance with any combination of the above described channel coding and security protocols. This way, the need to incorporate any specific channel coding and/or security protocols within the mark encoding function 134 is eliminated. Furthermore, the look-up table may be readily updated to reflect new security, robustness or economic requirements of the marking system.

Rendering

An exemplary diagram of the relationship between the elements of the rendering function 126 of FIG. 2 is provided in FIG. 4. The rendering function 126 assembles the selected tributaries 122 in accordance with rendering information 124 provided by the composition function 120 to produce a distinctly marked content signal 118. In some embodiments, it may also be useful for the rendering function 126 to provide a capability of applying post-processing 144 to the assembled content 142 in accordance with the post-processing information 140 that is provided by the composition function 120. The post-processing function 144 may comprise a plurality of operations that serve to, for example, mask the presence of the embedded mark, change the content resolution, change the sampling rate, or otherwise modify the assembled content 142 to place it in a suitable output format as dictated by the post-processing information 140 or system interface requirements.

Assembly

The rendering function 126 provides support for one or more methods of producing assembled content 142 by assembly function 146 under the direction of the assembly information 138 provided as part of the rendering information 124. Examples of general methods of assembly that may be supported include splicing, replacement (with or without masking of various kinds), addition, multiplication, blending (e.g. linear combination), or combinations of methods such as these. In general, the assembly information 138 may express (and the assembly function 146 may support) the interpretation and execution of a range of typical content processing functions as might be found in existing systems that perform rendering of content from a collection of production elements in accordance with an expression of assembly information. Well-known content encoding formats of this type include Adobe Portable Document Format, Microsoft Word XML document schema, MXF, Advanced Authoring Format, Advanced Systems Format, Broadcast Wave Format, and Mobile XMF. Many of the techniques for expression and processing of rendering information expressions that are known in the art are considered to be useful in conjunction with the present invention.

Selection of the particular methods of assembly supported by a common customization function 114 will largely define the types of forensic marking schemes with which it will be compatible, so the methods selected should be chosen based on techniques that are expected to be useful in practical marking schemes. This selection will also dictate the operational burden placed on devices that implement the assembly function 146, so the range of assembly methods supported should be influenced by their value and generality.

Post-Processing

The rendering function 126 may optionally support the application of one or more post-processing functions 144 on the assembled content 142 in accordance with the post-processing information 140. While some post-processing operations may be utilized to further differentiate the distinctly marked content 118 from the original content 100, other operations may be used to enhance the security of the embedded marks, to enhance the transparency of the embedded marks, or to perform signal conditioning operations that facilitate subsequent storage, presentation or transmission of the marked content. By way of example and not by limitation, some post-processing operations include applying masking and anti-collusion measures, signal saturation/clipping prevention techniques, application of dither, application of special artistic/aesthetic effects, gamma correction, color correction, cryptographic operations, and the like.

Validation

The validation function 110 (FIG. 1) evaluates and analyzes the information output from the pre-processing function 104 in order to obtain validation information 112. The validation information 112 is predictive of what will occur when certain information (e.g., customization information) are provided to a common customization function 114. For example, as shown in FIG. 1, the validation function 110 may determine whether a given expression of tributaries 106 and customization information 108 contains any deviations from a specific protocol associated with a common customization function 114.

The validation function 110 may also measure certain aspects of an instance of tributaries 106 and customization information 108, such as the amount of processing, memory, or latency necessary for a common customization function 114 to evaluate those instances (‘execution profiling’), given certain assumptions about the mark message 116. Validation functions may be employed at different parts of the content distribution chain. For example, it may be desirable to perform a validation function in conjunction with pre-processing in order to select from alternative possible expressions of tributaries and customization information based on measurable characteristics of their performance or to ensure their compatibility with the common customization functions supported by a specific class of devices. Additionally, they may be employed on a standalone basis by a content distributor who wants to ensure that content that they distribute is compatible with a common customization function performed by certain specific devices to which they distribute materials. Validation functions may also exist in any environments where common customization functions reside, and be employed prior to content customization in order to determine a priori the results of performing forensic mark customization.

Techniques that may be employed for performing validation functions, such as specification compliance verification and execution profiling, are generally well-known in the art.

Exemplary Embodiment

To illustrate the most basic elements of the present invention, as a first example a simple embodiment of the invention is described. This example embodiment is described with specific, limited detail for the purpose of providing clear and concrete examples of the concepts, but is not intended in any way to limit or fix the scope of the present invention. Nevertheless, this simple example has substantial flexibility and is, as is demonstrated below, compatible with many of the forensic marking schemes known in the art.

Exemplary Common Customization Function

In this embodiment, a common customization function 114 may be defined specifically for use with schemes for the forensic marking of audio content with a 40-bit mark message 116. The common customization function 114 (including all component functions described herein) may be embodied in a stored program on a hard-disk in a computer system located in the projection booth of a commercial movie theater. The computer system may be one among many connected to a wide-area network over which digital audio and video are distributed to multiple similar computer systems in multiple similar projection booths in multiple movie theaters. An additional function of the computer system is to access content at the time when a movie is to be shown in the theater, process it with the common customization function 114 in order to obtain a distinctly marked content 118, and output the distinctly marked content 118 sequentially for playback to the movie theater audience. Each such computer system may have a stored unique serial number and an internal clock, from which the common customization function 114 may derive a 40-bit mark message 116 to be forensically marked into the audio of each movie presentation output from the computer system.

The implementation of the present invention in this particular environment enables the manufacturer of the computer system to only incorporate a single common customization function 114 to provide a playback environment that is compatible with a range of forensic marking schemes. In addition, any one of a variety of forensic marking schemes may be used for a particular movie content at the discretion of the movie producer or distributor, and such schemes will be compatible with any device that employs the common customization function 114, regardless of any other playback device characteristics.

In an exemplary movie screening scenario, prior to playback, pre-processed audio content may be securely delivered from another computer system at a movie distributor to the computer system in the projection booth over the wide area network in the form of a computer file that contains both tributaries 106 and customization information 108. (The associated video content is provided as well, and may also be pre-processed for handling by a common customization function 114, but for simplicity of exposition in this example, only the audio portion of the content is considered.) Such an audio file may be compliant with, for example, the Broadcast Wave format. Two types of data chunks exist within the file that contain the customization information 108, the nexus sequence 128 and mark encoding protocol 130, respectively, which may be provided in big-endian format. Tributaries 106 may be stored in audio chunks, with one tributary per audio chunk. Tributaries 106 may be encoded as eight channel PCM audio at a 48 kHz sampling rate. The exemplary nexus sequence and post-processing grammar may be defined as shown in Table 1 and the exemplary mark encoding protocol grammar may be shown as defined in Table 2 below, using a data format conforming to the Extended Backus-Naur form grammars.

TABLE 1 EXEMPLARY NEXUS SEQUENCE AND POST PROCESSING GRAMMAR 1  nexus-list = post-processing-information* nexus 2   (nexus | post-processing-information)* nexus-list-end-instruction 3  nexus := single-nexus | repeating-nexus 4  single-nexus := ‘0x01’, nexus-element 5  repeating-nexus := ‘0x02’, repetition-count nexus-element 6  repetition-count := “32-bit unsigned integer” 7  nexus-element := unary-nexus | binary-nexus 8  nexus-list-end-instruction := end-nexus-list | repeat-nexus-list 9  end-nexus-list := ‘0x00’ 10 repeat-nexus-list = ‘0x01’ absolute-marker 11 unary-nexus := ‘0x00’ tributary-index assembly-information 12 binary-nexus := 13  ‘0x01’ zero-value-output one-value-output 14 zero-value-output := assembly-information 15 one-value-output := assembly-information 16 tributary-index := “16-bit unsigned integer” 17 assembly-information := 18  tributary-index 19  tributary-start-marker tributary-duration 20  fade-information fade-information 21  render-start-marker 22  assembly-type 23 tributary-start-marker := absolute-marker | register-marker 24 tributary-duration := absolute-marker 25 render-start-marker := absolute-marker | register-marker 26 absolute-marker := ‘0x00’ “32-bit unsigned integer” 27 register-marker:= ‘0x01’ register-mod-type register-mod-amount 28 register-mod-type := offset | offset-update | offset-clear | 29  random-offset | random-offset-update | random-clear 30 register-mod-amount := “32-bit signed integer” 31 offset := ‘0x00’ 32 offset-update := ‘0x01’ 33 offset-clear := ‘0x02’ 34 random-offset := ‘0x03’ 35 random-offset-update := ‘0x04’ 36 random-offset-clear := ‘0x05’ 37 assembly-type := replace | add 38 replace := ‘0x00’ 39 add := ‘0x01’ 40 fade-information := no-fade | linear-fade 41 no-fade := ‘0x00’ 42 linear-fade := ‘0x01’ fade-duration 43 fade-duration := absolute-marker 44 post-processing-info := ‘0x03’ limiting-type 45 limiting-type := hard-clipping | soft-clipping 46 hard-clipping := ‘0x00’ 47 soft-clipping := ‘0x01’

TABLE 2 EXEMPLARY MARK ENCODING PROTOCOL GRAMMAR 1  mark-encoding-protocol := mark-encoding+ 2  mark-encoding := constant-bit | mark-message-bit |   xor-mark-message-bit | mapping 3  constant-bit := ‘ 0x00’ binary-value 4  mark-message-bit := ‘0x01’ 5  xor-mark-message-bit := ‘0x02’ binary-value 6  mapping := ‘0x03’ input-count output-count mapping-table 7  binary-value := ‘0x00’ | ‘0x01’ 8  mapping-table := 9   “row-first matrix of binary values with 2{circumflex over ( )}(input-count) rows and 10  (output-count) columns”

For this example, it is assumed that the computer server does not impose tight constraints on the processing, memory, and latency of the customization function. It should be recognized, however, that such constraints will exist in many practical cases. There would be no guarantee that all content expressible in this format would meet a particular set of constraints, and careful design of the particular expression of content (in addition to the use of a validation function for measurement of these parameters) might be needed for different classes of devices with common customization functions.

Exemplary Nexus Resolution

In the exemplary embodiment shown in Table 1 above, the nexus resolution function 132 is carried out by sequentially processing the nexuses in the nexus sequence 128 in accordance with the specified grammar of Table 1. Each nexus may be expressed either as a “single nexus” which is evaluated one time, or as a “repeating nexus” which is repeatedly evaluated a specified number of times in succession. In the processing of unary nexuses, an associated tributary index (which identifies the candidate tributaries) is selected. Assembly information 138 is provided as output of the composition function 120 for rendering. In the processing of binary nexuses, a mark sequence value is received from the mark encoding function 134, and used to select one of two tributary index and assembly information 138 pairs in the nexus for output. Post-processing information 140, when present, is provided in the same data stream as the nexus sequence 128 and is time-multiplexed. Post-processing information 140 is output directly to the post-processing function 144 without modification. Assembly information 138 is provided to the assembly function 146, along with the associated tributary index value obtained from each nexus. When all nexuses from the nexus sequence 128 have been evaluated, the nexus resolution function 132 is either completed or it repeats from the start of the nexus list (in which case a counter is supplied for the total number of nexuses to be processed prior to completion of nexus resolution) according to information provided at the end of the nexus list.

Exemplary Mark Encoding

The mark encoding function 134 is carried out by sequentially processing the elements of the mark encoding protocol 130 in accordance with the grammar that is shown in Table 2 above. Processing consists of retrieving, processing, and outputting mark sequence values, in accordance with the specified mark encoding protocol 130. The “constant bit” expression in Table 2 indicates the output of a fixed mark sequence bit value, independent of the values of the mark message 116. The “mark message bit” expression indicates the output of a mark sequence bit that is equal to the corresponding bit value in the mark message 116. The “XOR mark message bit” expression indicates the output of a mark sequence bit value that results from a logical XOR between a value provided by the mark encoding protocol 130 and a value taken from the mark message 116. The “mapping” expression indicates the output of a sequence of mark sequence bit values taken from a table stored in the mark encoding protocol 130. The table is stored in the form of a table of output sequences (in rows), with the row that is output from the table selected by the value of the binary word expressed by a sequence of bits taken from the mark message 116. For example, if the input count is 3 and the output count is 4, then a table of output values that is 8 (2³) rows by 4 columns is provided. Three bits from the mark message 116 are read, and their binary value (0-7) is used to select a row from the table. The mark sequence output 136 generated by the mark encoding function 134 is then the set of values stored in that row of the table.

When all elements of the mark encoding protocol 130 have been processed, the mark encoding function 134 returns to the beginning of the mark encoding protocol 130 and continues its processing as if the mark encoding protocol 130 were repeated serially. Similarly, if the mark encoding function 134 reaches the end of the mark message 116, its operations continue from the start of the mark message 116, as if values were repeated serially. The mark encoding function 134 continues to operate in this way, so long as the nexus resolution function 132 continues to require additional mark sequence values 136.

Exemplary Assembly Function

The assembly function 146 is carried out by sequentially processing the output of the nexus resolution function 132, which consists of a sequence of tributary index/assembly information element pairs. Table 1 above provides examples of such assembly information 138 that include multiple fields. Markers specify indices of the start and duration of the tributaries that are selected for composition (“tributary segment”), which may be computed from a stored tributary marker register, and an expression may also indicate modification of the register in one of several ways following its use. A fading characteristic may be specified for application to the start and end of the tributary segment (i.e. a gradual amplitude fade with a specified duration and curve shape for each endpoint of the tributary segment) prior to composition. Expressions are provided for determining an index for the starting point in the output stream where the tributary segment should be placed based on a stored output marker register, and an expression may also direct modification of the register in one of several ways following its use. An additional information field is provided that specifies how the tributary segment should be composed with other segments that may overlap in time in the assembled content (i.e. whether the data from the earlier segment in the sequence should be replaced by the latter or whether the two segments should be added together). Processing of the assembly information 138 consists of performing the retrieval, alignment, and composition of the selected tributary segments 122 to form assembled content 142 in accordance with the assembly information expressions.

Exemplary Post-Processing

The post-processing function 144 is carried out by sequentially processing the elements of post-processing information 140 as described in the exemplary grammar listing of Table 1, lines 44 through 47. Parsing consists of lexical analysis of the data in the post-processing information 140 in accordance with the nexus sequence grammar defined in the listing of Table 1. Evaluation consists of applying a function to the assembled content 142 in accordance with settings dictated by the post-processing information 140. In the case of hard clipping, the assembled content 142 is evaluated to determine whether any of the values of the content samples have exceeded the dynamic range supported by the output device. Any samples that have exceeded that dynamic range are set to the nearest value that is within the dynamic range of the output device.

In the case of soft clipping, the entirety of the assembled content 142 is processed through the non-linear function, such as the one specified by:

$\begin{matrix} {y = \left\{ {\begin{matrix} {{x\left( {1 - {0.08192x^{4}}} \right)},} & {{{for}\mspace{14mu}{x}} < 1.25} \\ {{sign}(x)} & {{{for}\mspace{14mu}{x}} \geq 1.25} \end{matrix},} \right.} & {{Equation}\mspace{20mu}(1)} \end{matrix}$ where x is the value of the assembled content, y is the value of the soft-limited content, and [−1,1] is the normalized range of the output device. Exemplary Forensic Marking Schemes Using Exemplary Embodiment

To illustrate certain benefits of the exemplary embodiment, its use in conjunction with a forensic marking scheme previously known in the art is described.

Exemplary Forensic Marking Scheme

In the first embodiment described in the U.S. Pat. No. 6,912,315 an arrangement is employed whereby original audio content is pre-processed to generate two alternate versions, each embedded with a synchronous stream of watermark data. The first version is embedded with a watermark sequence comprised entirely of a first logical value. such as the binary value “0” and the second version is embedded with a watermark sequence comprised entirely of a second logical value, such as the binary value “1.” A customization method is employed whereby distinct content carrying a watermark data stream with an arbitrary mark sequence is produced by splicing sequential segments selected from one of the two alternate versions in accordance with the values of a mark sequence. To avoid introducing discontinuities through the splicing function, selected segments are taken with a short, overlapping transition regions and the segments are blended via cross-fade. For purposes of this example, it is assumed that the hits are embedded in audio segments that are 5.33 ms in duration (256 samples at 48 kHz sampling rate) and that the cross-fade region is 0.33 ms in duration (16 samples at 48 kHz). It is also assumed, for purposes of this example, that the mark encoding protocol simply prepends the frame synchronization sequence ‘0111’ to the mark message to form the mark sequence, and repeatedly transmits this sequence throughout the duration of the content.

Adaptation of the pre-processing step associated with the scheme described above to one that generates tributaries and customization information compatible with the common customization function 114 described in the exemplary embodiment of the present invention is straightforward. The original content is pre-processed to obtain the versions embedded with logical values (e.g., “0” and “1” watermark data sequences, respectively) at pre-processing function 104 and the two versions are stored in two tributaries (“tributary 0” and “tributary 1”). A nexus list is produced as shown in Table 3 below.

TABLE 3 EXAMPLE NEXUS LIST 1  ; Post processing info 2  03 00 ;   Use hard clipping 3  ; First nexus, only used for first element 4  01 01; Single, binary nexus 5   00 00;  Zero-value output, use tributary 0 6    01 01;   For tributary start, use register with offset update 7    00 00 00 F0;    to 256−16=240, leaving marker at start of next fadein 8    00 00 01 10;   Tributary duration is 256+16 (bit plus fadeout) 9    00;   No fade in 10   01 00 00 00 10;   Use 16 sample linear fadeout 11  01 01;   For render start, use register with offset update 12   00 00 00 F0;    to 256−16=240, leaving marker at start of next fadein 13  00;  Assemble by replacement 14 00 01;  One-value output, use tributary 1 15  01 01;   For tributary start, use register with offset update 16   00 00 00 F0;    to 256−16=240, leaving marker at start of next fadein 17  00 00 01 00;   Tributary duration is 256+16 (bit plus fadeout) 18   00;   No fade in 19   01 00 00 00 10;   Use 16 sample linear fadeout 20  01 01;   For render start, use register with offset update 21   00 00 00 F0;    to 256−16=240, leaving marker at start of next fadein 22  00;  Assemble by replacement 23 ; Repeated nexus for elements 2-674,999 24 02 00 0A 4C B6 01; Binary nexus, repeated 674,998 times (2 hours total) 25  00 00;  Zero-value output, use tributary 0 25   01 01;  For tributary start, use input register with update 27    00 00 01 00;    by 256, leaving marker at start of next bit's fadein 28   00 00 01 20;   Tributary duration is 16+256+16 (fadein+bit+fadeout) 29   01 00 00 00 10;   Use 16 sample linear fadein 30   01 00 00 00 10;   Use 16 sample linear fadeout 31   01 01;   For render start, use output register with offset update 32    00 00 01 00;    by 256, leaving marker at start of next bit's fadein 33   01;  Assemble by addition 34  00 0  1;   One-value output, use tributary 1 35   01 01   For tributary start, use register with offset update 36    00 00 01 00;    by 256, leaving marker at start of next bit's fadein 37   00 00 01 20;   Tributary duration is 16+256+16 (fadein+bit+fadeout) 39   01 00 00 00 10;   Use 16 sample linear fadein 40   01 00 00 00 10;   Use 16 sample linear fadeout 41   01 01;   For render start, use register with offset update 42    00 00 01 00;    to 256, leaving marker at start of next bit's fadein 43   01;  Assemble by addition 44 ; Single nexus used for last element only 45 01 01 ;   Single, binary nexus 46  00 00;  Zero-value output, use tributary 0 47   01 00 00 00 00 00;   For tributary start, use input register with no offset 48   00 00 01 10;   Tributary duration is 16+256 (fadein+bit) 49   01 00 00 00 10;   Use 16 sample linear fadein 50   00;   No fadeout 51   01 00;   For render start, use output register with no offset 52    00 00 00 00; 53   01;  Assemble by addition 54  00 01;  One-value output, use tributary 1 55   01 00 00 00 00 00;   For tributary start, use register with no offset 56   00 00 01 10;   Tributary length is 16+256 (fadein+bit) 57   01 00 00 00 10;   Use 16 sample linear fadein 58   00;   No fadeout 59   01 00;   For render start, use register with no offset 60    00 00 00 00;    to 256, leaving marker at start of next fadein 61   01;  Assemble by addition 62 ; End nexus list 63 00

This nexus list shown in Table 3 comprises instructions for the first and last elements of the mark sequence 136 that are different from the instructions for the remaining elements of the sequence. A mark encoding protocol 130 is produced as shown in Table 4 below.

TABLE 4 EXAMPLE MARK ENCODING PROTOCOL 1 ; Output fixed synchronization sequence ‘1011’ 2 00 01 3 00 00 4 00 01 5 00 01 6 ; Output 40 mark message bits 7 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 8 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 The original content in this case is presumed to be two hours (675,000 bits of 5.3 ms each).

Although this particular arrangement complies with the data format requirement of the exemplary embodiment and would be compatible with the described device, it should be appreciated that many different adaptations of the present invention may be made without departing from the scope of the invention. For example, it is noted that the tributaries described in this . exemplary embodiment are large and the distance between alternate tributary segments employed in individual nexuses may introduce a significant memory usage requirement or alternately a random data access requirement on the common customization function. This approach may not be suitable for all devices that support the common customization, such as those with limited memory or only serial access to data. For such cases, an alternate expression might entail dividing each of the two versions of the content into many tributaries, each containing only a short segment of the content marked with “0” or “1” data symbols, and interleaving these shorter tributaries so that there is a greater locality of reference within the data stream. The nexus sequence and post-processing data might also be interleaved with the tributary data to achieve a similar advantage. By establishing requirements for processing utilization over time, memory, storage and data access, processing latency, etc., it becomes possible to design devices that implement a common customization function with a well-defined capability, and to design pre-processing and validation methodologies that enable the production of tributaries and customization information that can be reliably employed in conjunction with them to obtain forensically marked content in a range of practical environments.

It should now be appreciated that the present invention provides advantageous methods, systems and apparatus for forensic watermarking using a common customization function.

Although the invention has been described in connection with various illustrated embodiments, numerous modifications and adaptations may be made thereto without departing from the spirit and scope of the invention as set forth in the claims. 

1. A method for producing a distinctly marked content, comprising: pre-processing an original content to produce a plurality of tributaries and customization information; and processing said tributaries and customization information using a common customization function adapted to accept a mark message in order to produce a distinctly marked content, wherein said customization information and tributaries are sufficient, without a further need for utilizing said original content, for the production of content that is marked with any of a multiplicity of mark messages using said common customization function, wherein said customization information represents instructions to said common customization function as to how said tributaries should be combined for various mark data values that comprise said mark message.
 2. The method of claim 1, wherein said plurality of tributaries and said customization information are produced by pre-processing the original content with at least one alternate content element.
 3. The method of claim 2, wherein said tributaries are derived from said alternate content elements.
 4. The method of claim 2, wherein said pre-processing comprises embedding at least a logical value in a portion of said original content.
 5. The method of claim 2, wherein said tributaries are synthesized during said pre-processing.
 6. The method of claim 1, wherein said tributaries comprise instructions for generating at least one alternate version of said original content or an alternate content element.
 7. The method of claim 1, further comprising analyzing said tributaries and customization information to obtain validation information.
 8. The method of claim 7, wherein said validation information comprises resource allocation profiles.
 9. The method of claim 7, wherein said validation information represents compatibility profiles.
 10. The method of claim 1, wherein said processing comprises: selecting a subset of said tributaries; generating rendering information in accordance with said customization information and said mark message; and rendering said subset of said tributaries in accordance with said rendering information to form said distinctly marked content.
 11. The method of claim 10, wherein said selecting is conducted in accordance with said customization information and said mark message.
 12. The method of claim 10, wherein said selecting is conducted in accordance with a set of nexus resolution instructions.
 13. The method of claim 10, wherein said rendering comprises assembling said selected tributaries in accordance with said rendering information.
 14. The method of claim 13, wherein said assembling comprises at least one of adding, multiplying, splicing or blending of said selected tributaries.
 15. The method of claim 10, wherein said rendering is conducted in accordance with a set of assembly instructions.
 16. The method of claim 15, wherein said assembly instructions correspond to at least one of a PDF, XML, MXF, AAF, ASF, BWF, and Mobile XMF encoding formats.
 17. The method of claim 10, wherein said rendering comprises post-processing operations to enhance the security of said distinctly marked content.
 18. The method of claim 10, wherein said rendering comprises post-processing operations to enhance the transparency of the embedded marks within said distinctly marked content.
 19. The method of claim 1, wherein said mark message is encoded in accordance with at least one of: an error correction coding; a channel coding; and a data security protocol.
 20. The method of claim 19, wherein the encoding of said mark message is conducted using a look-up table.
 21. An apparatus for producing a distinctly marked content, comprising: means for pre-processing an original content to produce a plurality of tributaries and customization information produced by a pre-processing function; means for processing said tributaries and customization information using a common customization function adapted to accept a mark message in order to produce a distinctly marked content, wherein said customization information and tributaries are sufficient, without a further need for utilizing said original content, for the production of content that is marked with any of a multiplicity of mark messages using said common customization function, wherein said customization information represents instructions to said common customization function as to how said tributaries should be combined for various mark data values that comprise said mark message.
 22. The method of claim 1, wherein said customization information comprises generic instructions adaptable to a range of different forensic marking schemes.
 23. A device, comprising: a processor; and a memory comprising processor executable code, the processor executable code, when executed by the processor, configuring the device to: pre-process an original content to produce a plurality of tributaries and customization information; and process said tributaries and customization information using a common customization function adapted to accept a mark message in order to produce a distinctly marked content, wherein said customization information and tributaries are sufficient, without a further need for utilizing said original content, for the production of content that is marked with any of a multiplicity of mark messages using said common customization function, wherein said customization information represents instructions to said common customization function as to how said tributaries should be combined for various mark data values that comprise said mark message.
 24. A computer program product, embodied on a non-transitory computer readable medium, comprising: program code for pre-processing an original content to produce a plurality of tributaries and customization information; and program code for processing said tributaries and customization information using a common customization function adapted to accept a mark message in order to produce a distinctly marked content, wherein said customization information and tributaries are sufficient, without a further need for utilizing said original content, for the production of content that is marked with any of a multiplicity of mark messages using said common customization function, wherein said customization information represents instructions to said common customization function as to how said tributaries should be combined for various mark data values that comprise said mark message.
 25. The method of claim 1, wherein: said tributaries are alternate versions of said original content; and each tributary represents a distinct logical value. 